/**
 */
package ms.unicorn.dsl.unicornDSL.impl;

import ms.unicorn.dsl.unicornDSL.CallParameter;
import ms.unicorn.dsl.unicornDSL.DslConvertionScheme;
import ms.unicorn.dsl.unicornDSL.ElementField;
import ms.unicorn.dsl.unicornDSL.FunctionArgument;
import ms.unicorn.dsl.unicornDSL.IdentifiedElement;
import ms.unicorn.dsl.unicornDSL.ImportStatement;
import ms.unicorn.dsl.unicornDSL.IncludeStatement;
import ms.unicorn.dsl.unicornDSL.LanguageElement;
import ms.unicorn.dsl.unicornDSL.Module;
import ms.unicorn.dsl.unicornDSL.NamedProperty;
import ms.unicorn.dsl.unicornDSL.Namespace;
import ms.unicorn.dsl.unicornDSL.Theme;
import ms.unicorn.dsl.unicornDSL.UnicornConversion;
import ms.unicorn.dsl.unicornDSL.UnicornDSLFactory;
import ms.unicorn.dsl.unicornDSL.UnicornDSLPackage;
import ms.unicorn.dsl.unicornDSL.UnicornLanguage;
import ms.unicorn.dsl.unicornDSL.UnicornLibrary;
import ms.unicorn.dsl.unicornDSL.XAddExpression;
import ms.unicorn.dsl.unicornDSL.XArray;
import ms.unicorn.dsl.unicornDSL.XArrayKey;
import ms.unicorn.dsl.unicornDSL.XAssignExpression;
import ms.unicorn.dsl.unicornDSL.XBlockExpression;
import ms.unicorn.dsl.unicornDSL.XBoolExpression;
import ms.unicorn.dsl.unicornDSL.XBoolLiteral;
import ms.unicorn.dsl.unicornDSL.XCastExpression;
import ms.unicorn.dsl.unicornDSL.XComparativeExpression;
import ms.unicorn.dsl.unicornDSL.XConstructionExpression;
import ms.unicorn.dsl.unicornDSL.XDataFrame;
import ms.unicorn.dsl.unicornDSL.XExpression;
import ms.unicorn.dsl.unicornDSL.XFeatureCall;
import ms.unicorn.dsl.unicornDSL.XFloatLiteral;
import ms.unicorn.dsl.unicornDSL.XForControlVariable;
import ms.unicorn.dsl.unicornDSL.XForExpression;
import ms.unicorn.dsl.unicornDSL.XFunctionDeclaration;
import ms.unicorn.dsl.unicornDSL.XIfExpression;
import ms.unicorn.dsl.unicornDSL.XInitObjectExpression;
import ms.unicorn.dsl.unicornDSL.XIntLiteral;
import ms.unicorn.dsl.unicornDSL.XJavaTypeImport;
import ms.unicorn.dsl.unicornDSL.XLiteral;
import ms.unicorn.dsl.unicornDSL.XMemberTerm;
import ms.unicorn.dsl.unicornDSL.XMultExpression;
import ms.unicorn.dsl.unicornDSL.XNameExpression;
import ms.unicorn.dsl.unicornDSL.XNullLiteral;
import ms.unicorn.dsl.unicornDSL.XParenthesizedExpression;
import ms.unicorn.dsl.unicornDSL.XReturnStatement;
import ms.unicorn.dsl.unicornDSL.XStringLiteral;
import ms.unicorn.dsl.unicornDSL.XUnaryTerm;
import ms.unicorn.dsl.unicornDSL.XVariableDeclaration;
import ms.unicorn.dsl.unicornDSL.XWhileExpression;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class UnicornDSLPackageImpl extends EPackageImpl implements UnicornDSLPackage
{
  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass moduleEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass unicornLibraryEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass unicornLanguageEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass unicornConversionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass includeStatementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass importStatementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass namespaceEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass identifiedElementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass languageElementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xReturnStatementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xFeatureCallEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass callParameterEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xNullLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xIntLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xFloatLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xStringLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xBoolLiteralEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass themeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass dslConvertionSchemeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass namedPropertyEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass elementFieldEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xJavaTypeImportEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xVariableDeclarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xFunctionDeclarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass functionArgumentEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xAssignExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xBoolExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xComparativeExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xAddExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xMultExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xCastExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xUnaryTermEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xMemberTermEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xArrayEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xArrayKeyEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xDataFrameEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xBlockExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xParenthesizedExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xNameExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xConstructionExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xInitObjectExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xIfExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xWhileExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xForExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xForControlVariableEClass = null;

  /**
   * Creates an instance of the model <b>Package</b>, registered with
   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
   * package URI value.
   * <p>Note: the correct way to create the package is via the static
   * factory method {@link #init init()}, which also performs
   * initialization of the package, or returns the registered package,
   * if one already exists.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.eclipse.emf.ecore.EPackage.Registry
   * @see ms.unicorn.dsl.unicornDSL.UnicornDSLPackage#eNS_URI
   * @see #init()
   * @generated
   */
  private UnicornDSLPackageImpl()
  {
    super(eNS_URI, UnicornDSLFactory.eINSTANCE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private static boolean isInited = false;

  /**
   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
   * 
   * <p>This method is used to initialize {@link UnicornDSLPackage#eINSTANCE} when that field is accessed.
   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #eNS_URI
   * @see #createPackageContents()
   * @see #initializePackageContents()
   * @generated
   */
  public static UnicornDSLPackage init()
  {
    if (isInited) return (UnicornDSLPackage)EPackage.Registry.INSTANCE.getEPackage(UnicornDSLPackage.eNS_URI);

    // Obtain or create and register package
    UnicornDSLPackageImpl theUnicornDSLPackage = (UnicornDSLPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof UnicornDSLPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new UnicornDSLPackageImpl());

    isInited = true;

    // Create package meta-data objects
    theUnicornDSLPackage.createPackageContents();

    // Initialize created meta-data
    theUnicornDSLPackage.initializePackageContents();

    // Mark meta-data to indicate it can't be changed
    theUnicornDSLPackage.freeze();

  
    // Update the registry and return the package
    EPackage.Registry.INSTANCE.put(UnicornDSLPackage.eNS_URI, theUnicornDSLPackage);
    return theUnicornDSLPackage;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getModule()
  {
    return moduleEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getModule_Name()
  {
    return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Include()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Imports()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Namespace()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getUnicornLibrary()
  {
    return unicornLibraryEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getUnicornLibrary_Elements()
  {
    return (EReference)unicornLibraryEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getUnicornLanguage()
  {
    return unicornLanguageEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getUnicornLanguage_Properties()
  {
    return (EReference)unicornLanguageEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getUnicornLanguage_Elements()
  {
    return (EReference)unicornLanguageEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getUnicornConversion()
  {
    return unicornConversionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getUnicornConversion_Elements()
  {
    return (EReference)unicornConversionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getIncludeStatement()
  {
    return includeStatementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getIncludeStatement_ImportURI()
  {
    return (EAttribute)includeStatementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getIncludeStatement_SearchPathUsed()
  {
    return (EAttribute)includeStatementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getImportStatement()
  {
    return importStatementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getImportStatement_ImportedNamespace()
  {
    return (EAttribute)importStatementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getNamespace()
  {
    return namespaceEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getNamespace_Name()
  {
    return (EAttribute)namespaceEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamespace_Imports()
  {
    return (EReference)namespaceEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamespace_Elements()
  {
    return (EReference)namespaceEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamespace_Namespaces()
  {
    return (EReference)namespaceEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXExpression()
  {
    return xExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getIdentifiedElement()
  {
    return identifiedElementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getIdentifiedElement_Name()
  {
    return (EAttribute)identifiedElementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLanguageElement()
  {
    return languageElementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageElement_Type()
  {
    return (EAttribute)languageElementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLanguageElement_Inheritance()
  {
    return (EReference)languageElementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLanguageElement_Properties()
  {
    return (EReference)languageElementEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXReturnStatement()
  {
    return xReturnStatementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXReturnStatement_Return()
  {
    return (EAttribute)xReturnStatementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXReturnStatement_Value()
  {
    return (EReference)xReturnStatementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXReturnStatement_Break()
  {
    return (EAttribute)xReturnStatementEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXReturnStatement_Continue()
  {
    return (EAttribute)xReturnStatementEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXFeatureCall()
  {
    return xFeatureCallEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXFeatureCall_Feature()
  {
    return (EAttribute)xFeatureCallEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXFeatureCall_NullSafe()
  {
    return (EAttribute)xFeatureCallEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXFeatureCall_OperatorCall()
  {
    return (EAttribute)xFeatureCallEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXFeatureCall_Params()
  {
    return (EReference)xFeatureCallEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXFeatureCall_IndexCall()
  {
    return (EAttribute)xFeatureCallEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXFeatureCall_FeatureElement()
  {
    return (EReference)xFeatureCallEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getCallParameter()
  {
    return callParameterEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getCallParameter_Name()
  {
    return (EAttribute)callParameterEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getCallParameter_Value()
  {
    return (EReference)callParameterEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getCallParameter_InheritedParameters()
  {
    return (EAttribute)callParameterEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXLiteral()
  {
    return xLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXNullLiteral()
  {
    return xNullLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXIntLiteral()
  {
    return xIntLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXIntLiteral_Value()
  {
    return (EAttribute)xIntLiteralEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXFloatLiteral()
  {
    return xFloatLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXFloatLiteral_Value()
  {
    return (EAttribute)xFloatLiteralEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXStringLiteral()
  {
    return xStringLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXStringLiteral_Value()
  {
    return (EAttribute)xStringLiteralEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXBoolLiteral()
  {
    return xBoolLiteralEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXBoolLiteral_IsTrue()
  {
    return (EAttribute)xBoolLiteralEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTheme()
  {
    return themeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTheme_Children()
  {
    return (EReference)themeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getDslConvertionScheme()
  {
    return dslConvertionSchemeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getNamedProperty()
  {
    return namedPropertyEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamedProperty_Tags()
  {
    return (EReference)namedPropertyEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamedProperty_Value()
  {
    return (EReference)namedPropertyEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getElementField()
  {
    return elementFieldEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementField_IsField()
  {
    return (EAttribute)elementFieldEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementField_Tags()
  {
    return (EReference)elementFieldEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementField_Type()
  {
    return (EAttribute)elementFieldEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementField_Value()
  {
    return (EReference)elementFieldEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXJavaTypeImport()
  {
    return xJavaTypeImportEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXJavaTypeImport_Class()
  {
    return (EAttribute)xJavaTypeImportEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXVariableDeclaration()
  {
    return xVariableDeclarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXVariableDeclaration_Value()
  {
    return (EReference)xVariableDeclarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXVariableDeclaration_Writable()
  {
    return (EAttribute)xVariableDeclarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXFunctionDeclaration()
  {
    return xFunctionDeclarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXFunctionDeclaration_Arguments()
  {
    return (EReference)xFunctionDeclarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXFunctionDeclaration_Body()
  {
    return (EReference)xFunctionDeclarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getFunctionArgument()
  {
    return functionArgumentEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFunctionArgument_Value()
  {
    return (EReference)functionArgumentEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getFunctionArgument_Any()
  {
    return (EAttribute)functionArgumentEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXAssignExpression()
  {
    return xAssignExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXAssignExpression_Left()
  {
    return (EReference)xAssignExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXAssignExpression_Operator()
  {
    return (EAttribute)xAssignExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXAssignExpression_Right()
  {
    return (EReference)xAssignExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXBoolExpression()
  {
    return xBoolExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXBoolExpression_LeftOperand()
  {
    return (EReference)xBoolExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXBoolExpression_Operator()
  {
    return (EAttribute)xBoolExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXBoolExpression_RightOperand()
  {
    return (EReference)xBoolExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXComparativeExpression()
  {
    return xComparativeExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXComparativeExpression_LeftOperand()
  {
    return (EReference)xComparativeExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXComparativeExpression_Operator()
  {
    return (EAttribute)xComparativeExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXComparativeExpression_RightOperand()
  {
    return (EReference)xComparativeExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXAddExpression()
  {
    return xAddExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXAddExpression_LeftOperand()
  {
    return (EReference)xAddExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXAddExpression_Operator()
  {
    return (EAttribute)xAddExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXAddExpression_RightOperand()
  {
    return (EReference)xAddExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXMultExpression()
  {
    return xMultExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXMultExpression_LeftOperand()
  {
    return (EReference)xMultExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXMultExpression_Operator()
  {
    return (EAttribute)xMultExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXMultExpression_RightOperand()
  {
    return (EReference)xMultExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXCastExpression()
  {
    return xCastExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXCastExpression_Expression()
  {
    return (EReference)xCastExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXCastExpression_Type()
  {
    return (EReference)xCastExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXUnaryTerm()
  {
    return xUnaryTermEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXUnaryTerm_Operator()
  {
    return (EAttribute)xUnaryTermEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXUnaryTerm_Term()
  {
    return (EReference)xUnaryTermEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXMemberTerm()
  {
    return xMemberTermEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXMemberTerm_Owner()
  {
    return (EReference)xMemberTermEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXMemberTerm_NullSafe()
  {
    return (EAttribute)xMemberTermEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXMemberTerm_Member()
  {
    return (EReference)xMemberTermEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXArray()
  {
    return xArrayEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXArray_List()
  {
    return (EAttribute)xArrayEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXArray_Expressions()
  {
    return (EReference)xArrayEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXArray_Map()
  {
    return (EAttribute)xArrayEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXArray_Keys()
  {
    return (EReference)xArrayEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXArrayKey()
  {
    return xArrayKeyEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXArrayKey_Name()
  {
    return (EAttribute)xArrayKeyEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXDataFrame()
  {
    return xDataFrameEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXDataFrame_Extensible()
  {
    return (EAttribute)xDataFrameEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXDataFrame_Readonly()
  {
    return (EAttribute)xDataFrameEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXDataFrame_Keys()
  {
    return (EAttribute)xDataFrameEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXDataFrame_Expressions()
  {
    return (EReference)xDataFrameEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXBlockExpression()
  {
    return xBlockExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXBlockExpression_Expressions()
  {
    return (EReference)xBlockExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXParenthesizedExpression()
  {
    return xParenthesizedExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXParenthesizedExpression_Exp()
  {
    return (EReference)xParenthesizedExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXNameExpression()
  {
    return xNameExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXNameExpression_Name()
  {
    return (EAttribute)xNameExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXNameExpression_Value()
  {
    return (EReference)xNameExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXConstructionExpression()
  {
    return xConstructionExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXConstructionExpression_Type()
  {
    return (EReference)xConstructionExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXConstructionExpression_Arguments()
  {
    return (EReference)xConstructionExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXConstructionExpression_InitExps()
  {
    return (EReference)xConstructionExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXInitObjectExpression()
  {
    return xInitObjectExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXInitObjectExpression_NullSafe()
  {
    return (EAttribute)xInitObjectExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXInitObjectExpression_Object()
  {
    return (EReference)xInitObjectExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXInitObjectExpression_InitExp()
  {
    return (EReference)xInitObjectExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXIfExpression()
  {
    return xIfExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXIfExpression_Condition()
  {
    return (EReference)xIfExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXIfExpression_IfTrue()
  {
    return (EReference)xIfExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXIfExpression_IfFalse()
  {
    return (EReference)xIfExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXWhileExpression()
  {
    return xWhileExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXWhileExpression_Condition()
  {
    return (EReference)xWhileExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXWhileExpression_Body()
  {
    return (EReference)xWhileExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXForExpression()
  {
    return xForExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForExpression_ForVar()
  {
    return (EReference)xForExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForExpression_Condition()
  {
    return (EReference)xForExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForExpression_PostFors()
  {
    return (EReference)xForExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXForExpression_ForEach()
  {
    return (EAttribute)xForExpressionEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForExpression_List()
  {
    return (EReference)xForExpressionEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForExpression_Body()
  {
    return (EReference)xForExpressionEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXForControlVariable()
  {
    return xForControlVariableEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXForControlVariable_New()
  {
    return (EAttribute)xForControlVariableEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForControlVariable_Feature()
  {
    return (EReference)xForControlVariableEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXForControlVariable_Value()
  {
    return (EReference)xForControlVariableEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public UnicornDSLFactory getUnicornDSLFactory()
  {
    return (UnicornDSLFactory)getEFactoryInstance();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isCreated = false;

  /**
   * Creates the meta-model objects for the package.  This method is
   * guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void createPackageContents()
  {
    if (isCreated) return;
    isCreated = true;

    // Create classes and their features
    moduleEClass = createEClass(MODULE);
    createEAttribute(moduleEClass, MODULE__NAME);
    createEReference(moduleEClass, MODULE__INCLUDE);
    createEReference(moduleEClass, MODULE__IMPORTS);
    createEReference(moduleEClass, MODULE__NAMESPACE);

    unicornLibraryEClass = createEClass(UNICORN_LIBRARY);
    createEReference(unicornLibraryEClass, UNICORN_LIBRARY__ELEMENTS);

    unicornLanguageEClass = createEClass(UNICORN_LANGUAGE);
    createEReference(unicornLanguageEClass, UNICORN_LANGUAGE__PROPERTIES);
    createEReference(unicornLanguageEClass, UNICORN_LANGUAGE__ELEMENTS);

    unicornConversionEClass = createEClass(UNICORN_CONVERSION);
    createEReference(unicornConversionEClass, UNICORN_CONVERSION__ELEMENTS);

    includeStatementEClass = createEClass(INCLUDE_STATEMENT);
    createEAttribute(includeStatementEClass, INCLUDE_STATEMENT__IMPORT_URI);
    createEAttribute(includeStatementEClass, INCLUDE_STATEMENT__SEARCH_PATH_USED);

    importStatementEClass = createEClass(IMPORT_STATEMENT);
    createEAttribute(importStatementEClass, IMPORT_STATEMENT__IMPORTED_NAMESPACE);

    namespaceEClass = createEClass(NAMESPACE);
    createEAttribute(namespaceEClass, NAMESPACE__NAME);
    createEReference(namespaceEClass, NAMESPACE__IMPORTS);
    createEReference(namespaceEClass, NAMESPACE__ELEMENTS);
    createEReference(namespaceEClass, NAMESPACE__NAMESPACES);

    xExpressionEClass = createEClass(XEXPRESSION);

    identifiedElementEClass = createEClass(IDENTIFIED_ELEMENT);
    createEAttribute(identifiedElementEClass, IDENTIFIED_ELEMENT__NAME);

    languageElementEClass = createEClass(LANGUAGE_ELEMENT);
    createEAttribute(languageElementEClass, LANGUAGE_ELEMENT__TYPE);
    createEReference(languageElementEClass, LANGUAGE_ELEMENT__INHERITANCE);
    createEReference(languageElementEClass, LANGUAGE_ELEMENT__PROPERTIES);

    xReturnStatementEClass = createEClass(XRETURN_STATEMENT);
    createEAttribute(xReturnStatementEClass, XRETURN_STATEMENT__RETURN);
    createEReference(xReturnStatementEClass, XRETURN_STATEMENT__VALUE);
    createEAttribute(xReturnStatementEClass, XRETURN_STATEMENT__BREAK);
    createEAttribute(xReturnStatementEClass, XRETURN_STATEMENT__CONTINUE);

    xFeatureCallEClass = createEClass(XFEATURE_CALL);
    createEAttribute(xFeatureCallEClass, XFEATURE_CALL__FEATURE);
    createEAttribute(xFeatureCallEClass, XFEATURE_CALL__NULL_SAFE);
    createEAttribute(xFeatureCallEClass, XFEATURE_CALL__OPERATOR_CALL);
    createEReference(xFeatureCallEClass, XFEATURE_CALL__PARAMS);
    createEAttribute(xFeatureCallEClass, XFEATURE_CALL__INDEX_CALL);
    createEReference(xFeatureCallEClass, XFEATURE_CALL__FEATURE_ELEMENT);

    callParameterEClass = createEClass(CALL_PARAMETER);
    createEAttribute(callParameterEClass, CALL_PARAMETER__NAME);
    createEReference(callParameterEClass, CALL_PARAMETER__VALUE);
    createEAttribute(callParameterEClass, CALL_PARAMETER__INHERITED_PARAMETERS);

    xLiteralEClass = createEClass(XLITERAL);

    xNullLiteralEClass = createEClass(XNULL_LITERAL);

    xIntLiteralEClass = createEClass(XINT_LITERAL);
    createEAttribute(xIntLiteralEClass, XINT_LITERAL__VALUE);

    xFloatLiteralEClass = createEClass(XFLOAT_LITERAL);
    createEAttribute(xFloatLiteralEClass, XFLOAT_LITERAL__VALUE);

    xStringLiteralEClass = createEClass(XSTRING_LITERAL);
    createEAttribute(xStringLiteralEClass, XSTRING_LITERAL__VALUE);

    xBoolLiteralEClass = createEClass(XBOOL_LITERAL);
    createEAttribute(xBoolLiteralEClass, XBOOL_LITERAL__IS_TRUE);

    themeEClass = createEClass(THEME);
    createEReference(themeEClass, THEME__CHILDREN);

    dslConvertionSchemeEClass = createEClass(DSL_CONVERTION_SCHEME);

    namedPropertyEClass = createEClass(NAMED_PROPERTY);
    createEReference(namedPropertyEClass, NAMED_PROPERTY__TAGS);
    createEReference(namedPropertyEClass, NAMED_PROPERTY__VALUE);

    elementFieldEClass = createEClass(ELEMENT_FIELD);
    createEAttribute(elementFieldEClass, ELEMENT_FIELD__IS_FIELD);
    createEReference(elementFieldEClass, ELEMENT_FIELD__TAGS);
    createEAttribute(elementFieldEClass, ELEMENT_FIELD__TYPE);
    createEReference(elementFieldEClass, ELEMENT_FIELD__VALUE);

    xJavaTypeImportEClass = createEClass(XJAVA_TYPE_IMPORT);
    createEAttribute(xJavaTypeImportEClass, XJAVA_TYPE_IMPORT__CLASS);

    xVariableDeclarationEClass = createEClass(XVARIABLE_DECLARATION);
    createEReference(xVariableDeclarationEClass, XVARIABLE_DECLARATION__VALUE);
    createEAttribute(xVariableDeclarationEClass, XVARIABLE_DECLARATION__WRITABLE);

    xFunctionDeclarationEClass = createEClass(XFUNCTION_DECLARATION);
    createEReference(xFunctionDeclarationEClass, XFUNCTION_DECLARATION__ARGUMENTS);
    createEReference(xFunctionDeclarationEClass, XFUNCTION_DECLARATION__BODY);

    functionArgumentEClass = createEClass(FUNCTION_ARGUMENT);
    createEReference(functionArgumentEClass, FUNCTION_ARGUMENT__VALUE);
    createEAttribute(functionArgumentEClass, FUNCTION_ARGUMENT__ANY);

    xAssignExpressionEClass = createEClass(XASSIGN_EXPRESSION);
    createEReference(xAssignExpressionEClass, XASSIGN_EXPRESSION__LEFT);
    createEAttribute(xAssignExpressionEClass, XASSIGN_EXPRESSION__OPERATOR);
    createEReference(xAssignExpressionEClass, XASSIGN_EXPRESSION__RIGHT);

    xBoolExpressionEClass = createEClass(XBOOL_EXPRESSION);
    createEReference(xBoolExpressionEClass, XBOOL_EXPRESSION__LEFT_OPERAND);
    createEAttribute(xBoolExpressionEClass, XBOOL_EXPRESSION__OPERATOR);
    createEReference(xBoolExpressionEClass, XBOOL_EXPRESSION__RIGHT_OPERAND);

    xComparativeExpressionEClass = createEClass(XCOMPARATIVE_EXPRESSION);
    createEReference(xComparativeExpressionEClass, XCOMPARATIVE_EXPRESSION__LEFT_OPERAND);
    createEAttribute(xComparativeExpressionEClass, XCOMPARATIVE_EXPRESSION__OPERATOR);
    createEReference(xComparativeExpressionEClass, XCOMPARATIVE_EXPRESSION__RIGHT_OPERAND);

    xAddExpressionEClass = createEClass(XADD_EXPRESSION);
    createEReference(xAddExpressionEClass, XADD_EXPRESSION__LEFT_OPERAND);
    createEAttribute(xAddExpressionEClass, XADD_EXPRESSION__OPERATOR);
    createEReference(xAddExpressionEClass, XADD_EXPRESSION__RIGHT_OPERAND);

    xMultExpressionEClass = createEClass(XMULT_EXPRESSION);
    createEReference(xMultExpressionEClass, XMULT_EXPRESSION__LEFT_OPERAND);
    createEAttribute(xMultExpressionEClass, XMULT_EXPRESSION__OPERATOR);
    createEReference(xMultExpressionEClass, XMULT_EXPRESSION__RIGHT_OPERAND);

    xCastExpressionEClass = createEClass(XCAST_EXPRESSION);
    createEReference(xCastExpressionEClass, XCAST_EXPRESSION__EXPRESSION);
    createEReference(xCastExpressionEClass, XCAST_EXPRESSION__TYPE);

    xUnaryTermEClass = createEClass(XUNARY_TERM);
    createEAttribute(xUnaryTermEClass, XUNARY_TERM__OPERATOR);
    createEReference(xUnaryTermEClass, XUNARY_TERM__TERM);

    xMemberTermEClass = createEClass(XMEMBER_TERM);
    createEReference(xMemberTermEClass, XMEMBER_TERM__OWNER);
    createEAttribute(xMemberTermEClass, XMEMBER_TERM__NULL_SAFE);
    createEReference(xMemberTermEClass, XMEMBER_TERM__MEMBER);

    xArrayEClass = createEClass(XARRAY);
    createEAttribute(xArrayEClass, XARRAY__LIST);
    createEReference(xArrayEClass, XARRAY__EXPRESSIONS);
    createEAttribute(xArrayEClass, XARRAY__MAP);
    createEReference(xArrayEClass, XARRAY__KEYS);

    xArrayKeyEClass = createEClass(XARRAY_KEY);
    createEAttribute(xArrayKeyEClass, XARRAY_KEY__NAME);

    xDataFrameEClass = createEClass(XDATA_FRAME);
    createEAttribute(xDataFrameEClass, XDATA_FRAME__EXTENSIBLE);
    createEAttribute(xDataFrameEClass, XDATA_FRAME__READONLY);
    createEAttribute(xDataFrameEClass, XDATA_FRAME__KEYS);
    createEReference(xDataFrameEClass, XDATA_FRAME__EXPRESSIONS);

    xBlockExpressionEClass = createEClass(XBLOCK_EXPRESSION);
    createEReference(xBlockExpressionEClass, XBLOCK_EXPRESSION__EXPRESSIONS);

    xParenthesizedExpressionEClass = createEClass(XPARENTHESIZED_EXPRESSION);
    createEReference(xParenthesizedExpressionEClass, XPARENTHESIZED_EXPRESSION__EXP);

    xNameExpressionEClass = createEClass(XNAME_EXPRESSION);
    createEAttribute(xNameExpressionEClass, XNAME_EXPRESSION__NAME);
    createEReference(xNameExpressionEClass, XNAME_EXPRESSION__VALUE);

    xConstructionExpressionEClass = createEClass(XCONSTRUCTION_EXPRESSION);
    createEReference(xConstructionExpressionEClass, XCONSTRUCTION_EXPRESSION__TYPE);
    createEReference(xConstructionExpressionEClass, XCONSTRUCTION_EXPRESSION__ARGUMENTS);
    createEReference(xConstructionExpressionEClass, XCONSTRUCTION_EXPRESSION__INIT_EXPS);

    xInitObjectExpressionEClass = createEClass(XINIT_OBJECT_EXPRESSION);
    createEAttribute(xInitObjectExpressionEClass, XINIT_OBJECT_EXPRESSION__NULL_SAFE);
    createEReference(xInitObjectExpressionEClass, XINIT_OBJECT_EXPRESSION__OBJECT);
    createEReference(xInitObjectExpressionEClass, XINIT_OBJECT_EXPRESSION__INIT_EXP);

    xIfExpressionEClass = createEClass(XIF_EXPRESSION);
    createEReference(xIfExpressionEClass, XIF_EXPRESSION__CONDITION);
    createEReference(xIfExpressionEClass, XIF_EXPRESSION__IF_TRUE);
    createEReference(xIfExpressionEClass, XIF_EXPRESSION__IF_FALSE);

    xWhileExpressionEClass = createEClass(XWHILE_EXPRESSION);
    createEReference(xWhileExpressionEClass, XWHILE_EXPRESSION__CONDITION);
    createEReference(xWhileExpressionEClass, XWHILE_EXPRESSION__BODY);

    xForExpressionEClass = createEClass(XFOR_EXPRESSION);
    createEReference(xForExpressionEClass, XFOR_EXPRESSION__FOR_VAR);
    createEReference(xForExpressionEClass, XFOR_EXPRESSION__CONDITION);
    createEReference(xForExpressionEClass, XFOR_EXPRESSION__POST_FORS);
    createEAttribute(xForExpressionEClass, XFOR_EXPRESSION__FOR_EACH);
    createEReference(xForExpressionEClass, XFOR_EXPRESSION__LIST);
    createEReference(xForExpressionEClass, XFOR_EXPRESSION__BODY);

    xForControlVariableEClass = createEClass(XFOR_CONTROL_VARIABLE);
    createEAttribute(xForControlVariableEClass, XFOR_CONTROL_VARIABLE__NEW);
    createEReference(xForControlVariableEClass, XFOR_CONTROL_VARIABLE__FEATURE);
    createEReference(xForControlVariableEClass, XFOR_CONTROL_VARIABLE__VALUE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isInitialized = false;

  /**
   * Complete the initialization of the package and its meta-model.  This
   * method is guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void initializePackageContents()
  {
    if (isInitialized) return;
    isInitialized = true;

    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);

    // Create type parameters

    // Set bounds for type parameters

    // Add supertypes to classes
    unicornLibraryEClass.getESuperTypes().add(this.getModule());
    unicornLanguageEClass.getESuperTypes().add(this.getModule());
    unicornConversionEClass.getESuperTypes().add(this.getModule());
    identifiedElementEClass.getESuperTypes().add(this.getXExpression());
    languageElementEClass.getESuperTypes().add(this.getXExpression());
    languageElementEClass.getESuperTypes().add(this.getIdentifiedElement());
    xReturnStatementEClass.getESuperTypes().add(this.getXExpression());
    xFeatureCallEClass.getESuperTypes().add(this.getXExpression());
    xLiteralEClass.getESuperTypes().add(this.getXExpression());
    xNullLiteralEClass.getESuperTypes().add(this.getXLiteral());
    xIntLiteralEClass.getESuperTypes().add(this.getXLiteral());
    xFloatLiteralEClass.getESuperTypes().add(this.getXLiteral());
    xStringLiteralEClass.getESuperTypes().add(this.getXLiteral());
    xBoolLiteralEClass.getESuperTypes().add(this.getXLiteral());
    themeEClass.getESuperTypes().add(this.getLanguageElement());
    dslConvertionSchemeEClass.getESuperTypes().add(this.getLanguageElement());
    namedPropertyEClass.getESuperTypes().add(this.getIdentifiedElement());
    elementFieldEClass.getESuperTypes().add(this.getIdentifiedElement());
    xJavaTypeImportEClass.getESuperTypes().add(this.getIdentifiedElement());
    xVariableDeclarationEClass.getESuperTypes().add(this.getIdentifiedElement());
    xFunctionDeclarationEClass.getESuperTypes().add(this.getIdentifiedElement());
    functionArgumentEClass.getESuperTypes().add(this.getIdentifiedElement());
    xAssignExpressionEClass.getESuperTypes().add(this.getXExpression());
    xBoolExpressionEClass.getESuperTypes().add(this.getXExpression());
    xComparativeExpressionEClass.getESuperTypes().add(this.getXExpression());
    xAddExpressionEClass.getESuperTypes().add(this.getXExpression());
    xMultExpressionEClass.getESuperTypes().add(this.getXExpression());
    xCastExpressionEClass.getESuperTypes().add(this.getXExpression());
    xUnaryTermEClass.getESuperTypes().add(this.getXExpression());
    xMemberTermEClass.getESuperTypes().add(this.getXExpression());
    xArrayEClass.getESuperTypes().add(this.getXExpression());
    xArrayKeyEClass.getESuperTypes().add(this.getXExpression());
    xDataFrameEClass.getESuperTypes().add(this.getXExpression());
    xBlockExpressionEClass.getESuperTypes().add(this.getXExpression());
    xParenthesizedExpressionEClass.getESuperTypes().add(this.getXExpression());
    xNameExpressionEClass.getESuperTypes().add(this.getXExpression());
    xConstructionExpressionEClass.getESuperTypes().add(this.getXExpression());
    xInitObjectExpressionEClass.getESuperTypes().add(this.getXExpression());
    xIfExpressionEClass.getESuperTypes().add(this.getXExpression());
    xWhileExpressionEClass.getESuperTypes().add(this.getXExpression());
    xForExpressionEClass.getESuperTypes().add(this.getXExpression());
    xForControlVariableEClass.getESuperTypes().add(this.getIdentifiedElement());

    // Initialize classes and features; add operations and parameters
    initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Include(), this.getIncludeStatement(), null, "include", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Imports(), this.getImportStatement(), null, "imports", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Namespace(), this.getNamespace(), null, "namespace", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(unicornLibraryEClass, UnicornLibrary.class, "UnicornLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getUnicornLibrary_Elements(), this.getXExpression(), null, "elements", null, 0, -1, UnicornLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(unicornLanguageEClass, UnicornLanguage.class, "UnicornLanguage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getUnicornLanguage_Properties(), this.getIdentifiedElement(), null, "Properties", null, 0, -1, UnicornLanguage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getUnicornLanguage_Elements(), this.getXExpression(), null, "elements", null, 0, -1, UnicornLanguage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(unicornConversionEClass, UnicornConversion.class, "UnicornConversion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getUnicornConversion_Elements(), this.getIdentifiedElement(), null, "elements", null, 0, -1, UnicornConversion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(includeStatementEClass, IncludeStatement.class, "IncludeStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getIncludeStatement_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, IncludeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getIncludeStatement_SearchPathUsed(), ecorePackage.getEBoolean(), "searchPathUsed", null, 0, 1, IncludeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(importStatementEClass, ImportStatement.class, "ImportStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getImportStatement_ImportedNamespace(), ecorePackage.getEString(), "importedNamespace", null, 0, 1, ImportStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(namespaceEClass, Namespace.class, "Namespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getNamespace_Name(), ecorePackage.getEString(), "name", null, 0, 1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getNamespace_Imports(), this.getImportStatement(), null, "imports", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getNamespace_Elements(), this.getXExpression(), null, "elements", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getNamespace_Namespaces(), this.getNamespace(), null, "namespaces", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xExpressionEClass, XExpression.class, "XExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(identifiedElementEClass, IdentifiedElement.class, "IdentifiedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getIdentifiedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, IdentifiedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(languageElementEClass, LanguageElement.class, "LanguageElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getLanguageElement_Type(), ecorePackage.getEString(), "type", null, 0, 1, LanguageElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getLanguageElement_Inheritance(), this.getLanguageElement(), null, "inheritance", null, 0, 1, LanguageElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getLanguageElement_Properties(), this.getIdentifiedElement(), null, "Properties", null, 0, -1, LanguageElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xReturnStatementEClass, XReturnStatement.class, "XReturnStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXReturnStatement_Return(), ecorePackage.getEBoolean(), "return", null, 0, 1, XReturnStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXReturnStatement_Value(), this.getXExpression(), null, "value", null, 0, 1, XReturnStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXReturnStatement_Break(), ecorePackage.getEBoolean(), "break", null, 0, 1, XReturnStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXReturnStatement_Continue(), ecorePackage.getEBoolean(), "continue", null, 0, 1, XReturnStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xFeatureCallEClass, XFeatureCall.class, "XFeatureCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXFeatureCall_Feature(), ecorePackage.getEString(), "feature", null, 0, 1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXFeatureCall_NullSafe(), ecorePackage.getEBoolean(), "nullSafe", null, 0, 1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXFeatureCall_OperatorCall(), ecorePackage.getEBoolean(), "operatorCall", null, 0, 1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXFeatureCall_Params(), this.getCallParameter(), null, "params", null, 0, -1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXFeatureCall_IndexCall(), ecorePackage.getEBoolean(), "indexCall", null, 0, 1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXFeatureCall_FeatureElement(), this.getIdentifiedElement(), null, "featureElement", null, 0, 1, XFeatureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(callParameterEClass, CallParameter.class, "CallParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getCallParameter_Name(), ecorePackage.getEString(), "name", null, 0, 1, CallParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getCallParameter_Value(), this.getXExpression(), null, "value", null, 0, 1, CallParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getCallParameter_InheritedParameters(), ecorePackage.getEBoolean(), "inheritedParameters", null, 0, 1, CallParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xLiteralEClass, XLiteral.class, "XLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(xNullLiteralEClass, XNullLiteral.class, "XNullLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(xIntLiteralEClass, XIntLiteral.class, "XIntLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXIntLiteral_Value(), ecorePackage.getEInt(), "value", null, 0, 1, XIntLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xFloatLiteralEClass, XFloatLiteral.class, "XFloatLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXFloatLiteral_Value(), ecorePackage.getEFloat(), "value", null, 0, 1, XFloatLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xStringLiteralEClass, XStringLiteral.class, "XStringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, XStringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xBoolLiteralEClass, XBoolLiteral.class, "XBoolLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXBoolLiteral_IsTrue(), ecorePackage.getEBoolean(), "isTrue", null, 0, 1, XBoolLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(themeEClass, Theme.class, "Theme", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getTheme_Children(), this.getLanguageElement(), null, "children", null, 0, -1, Theme.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(dslConvertionSchemeEClass, DslConvertionScheme.class, "DslConvertionScheme", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(namedPropertyEClass, NamedProperty.class, "NamedProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getNamedProperty_Tags(), this.getIdentifiedElement(), null, "Tags", null, 0, -1, NamedProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getNamedProperty_Value(), this.getXExpression(), null, "value", null, 0, 1, NamedProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(elementFieldEClass, ElementField.class, "ElementField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getElementField_IsField(), ecorePackage.getEString(), "isField", null, 0, 1, ElementField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementField_Tags(), this.getIdentifiedElement(), null, "Tags", null, 0, -1, ElementField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getElementField_Type(), ecorePackage.getEString(), "type", null, 0, 1, ElementField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementField_Value(), this.getXExpression(), null, "value", null, 0, 1, ElementField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xJavaTypeImportEClass, XJavaTypeImport.class, "XJavaTypeImport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXJavaTypeImport_Class(), ecorePackage.getEString(), "class", null, 0, 1, XJavaTypeImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xVariableDeclarationEClass, XVariableDeclaration.class, "XVariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXVariableDeclaration_Value(), this.getXExpression(), null, "value", null, 0, 1, XVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXVariableDeclaration_Writable(), ecorePackage.getEBoolean(), "writable", null, 0, 1, XVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xFunctionDeclarationEClass, XFunctionDeclaration.class, "XFunctionDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXFunctionDeclaration_Arguments(), this.getIdentifiedElement(), null, "arguments", null, 0, -1, XFunctionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXFunctionDeclaration_Body(), this.getXExpression(), null, "body", null, 0, 1, XFunctionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(functionArgumentEClass, FunctionArgument.class, "FunctionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getFunctionArgument_Value(), this.getXExpression(), null, "value", null, 0, 1, FunctionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getFunctionArgument_Any(), ecorePackage.getEBoolean(), "any", null, 0, 1, FunctionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xAssignExpressionEClass, XAssignExpression.class, "XAssignExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXAssignExpression_Left(), this.getXExpression(), null, "left", null, 0, 1, XAssignExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXAssignExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XAssignExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXAssignExpression_Right(), this.getXExpression(), null, "right", null, 0, 1, XAssignExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xBoolExpressionEClass, XBoolExpression.class, "XBoolExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXBoolExpression_LeftOperand(), this.getXExpression(), null, "leftOperand", null, 0, 1, XBoolExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXBoolExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XBoolExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXBoolExpression_RightOperand(), this.getXExpression(), null, "rightOperand", null, 0, 1, XBoolExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xComparativeExpressionEClass, XComparativeExpression.class, "XComparativeExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXComparativeExpression_LeftOperand(), this.getXExpression(), null, "leftOperand", null, 0, 1, XComparativeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXComparativeExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XComparativeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXComparativeExpression_RightOperand(), this.getXExpression(), null, "rightOperand", null, 0, 1, XComparativeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xAddExpressionEClass, XAddExpression.class, "XAddExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXAddExpression_LeftOperand(), this.getXExpression(), null, "leftOperand", null, 0, 1, XAddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXAddExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XAddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXAddExpression_RightOperand(), this.getXExpression(), null, "rightOperand", null, 0, 1, XAddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xMultExpressionEClass, XMultExpression.class, "XMultExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXMultExpression_LeftOperand(), this.getXExpression(), null, "leftOperand", null, 0, 1, XMultExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXMultExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XMultExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXMultExpression_RightOperand(), this.getXExpression(), null, "rightOperand", null, 0, 1, XMultExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xCastExpressionEClass, XCastExpression.class, "XCastExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXCastExpression_Expression(), this.getXExpression(), null, "expression", null, 0, 1, XCastExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXCastExpression_Type(), this.getXJavaTypeImport(), null, "type", null, 0, 1, XCastExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xUnaryTermEClass, XUnaryTerm.class, "XUnaryTerm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXUnaryTerm_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, XUnaryTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXUnaryTerm_Term(), this.getXExpression(), null, "term", null, 0, 1, XUnaryTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xMemberTermEClass, XMemberTerm.class, "XMemberTerm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXMemberTerm_Owner(), this.getXExpression(), null, "owner", null, 0, 1, XMemberTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXMemberTerm_NullSafe(), ecorePackage.getEBoolean(), "nullSafe", null, 0, 1, XMemberTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXMemberTerm_Member(), this.getXExpression(), null, "member", null, 0, 1, XMemberTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xArrayEClass, XArray.class, "XArray", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXArray_List(), ecorePackage.getEBoolean(), "list", null, 0, 1, XArray.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXArray_Expressions(), this.getXExpression(), null, "expressions", null, 0, -1, XArray.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXArray_Map(), ecorePackage.getEBoolean(), "map", null, 0, 1, XArray.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXArray_Keys(), this.getXExpression(), null, "keys", null, 0, -1, XArray.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xArrayKeyEClass, XArrayKey.class, "XArrayKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXArrayKey_Name(), ecorePackage.getEString(), "name", null, 0, 1, XArrayKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xDataFrameEClass, XDataFrame.class, "XDataFrame", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXDataFrame_Extensible(), ecorePackage.getEBoolean(), "extensible", null, 0, 1, XDataFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXDataFrame_Readonly(), ecorePackage.getEBoolean(), "readonly", null, 0, 1, XDataFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXDataFrame_Keys(), ecorePackage.getEString(), "keys", null, 0, -1, XDataFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXDataFrame_Expressions(), this.getXExpression(), null, "expressions", null, 0, -1, XDataFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xBlockExpressionEClass, XBlockExpression.class, "XBlockExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXBlockExpression_Expressions(), this.getXExpression(), null, "expressions", null, 0, -1, XBlockExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xParenthesizedExpressionEClass, XParenthesizedExpression.class, "XParenthesizedExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXParenthesizedExpression_Exp(), this.getXExpression(), null, "exp", null, 0, -1, XParenthesizedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xNameExpressionEClass, XNameExpression.class, "XNameExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXNameExpression_Name(), ecorePackage.getEString(), "name", null, 0, 1, XNameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXNameExpression_Value(), this.getXExpression(), null, "value", null, 0, 1, XNameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xConstructionExpressionEClass, XConstructionExpression.class, "XConstructionExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXConstructionExpression_Type(), this.getXJavaTypeImport(), null, "type", null, 0, 1, XConstructionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXConstructionExpression_Arguments(), this.getXExpression(), null, "arguments", null, 0, -1, XConstructionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXConstructionExpression_InitExps(), this.getXExpression(), null, "initExps", null, 0, -1, XConstructionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xInitObjectExpressionEClass, XInitObjectExpression.class, "XInitObjectExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXInitObjectExpression_NullSafe(), ecorePackage.getEBoolean(), "nullSafe", null, 0, 1, XInitObjectExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXInitObjectExpression_Object(), this.getXExpression(), null, "object", null, 0, 1, XInitObjectExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXInitObjectExpression_InitExp(), this.getXExpression(), null, "initExp", null, 0, 1, XInitObjectExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xIfExpressionEClass, XIfExpression.class, "XIfExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXIfExpression_Condition(), this.getXExpression(), null, "condition", null, 0, 1, XIfExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXIfExpression_IfTrue(), this.getXExpression(), null, "ifTrue", null, 0, 1, XIfExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXIfExpression_IfFalse(), this.getXExpression(), null, "ifFalse", null, 0, 1, XIfExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xWhileExpressionEClass, XWhileExpression.class, "XWhileExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXWhileExpression_Condition(), this.getXExpression(), null, "condition", null, 0, 1, XWhileExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXWhileExpression_Body(), this.getXExpression(), null, "body", null, 0, 1, XWhileExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xForExpressionEClass, XForExpression.class, "XForExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXForExpression_ForVar(), this.getIdentifiedElement(), null, "forVar", null, 0, 1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForExpression_Condition(), this.getXExpression(), null, "condition", null, 0, 1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForExpression_PostFors(), this.getXExpression(), null, "postFors", null, 0, -1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXForExpression_ForEach(), ecorePackage.getEBoolean(), "forEach", null, 0, 1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForExpression_List(), this.getXExpression(), null, "list", null, 0, 1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForExpression_Body(), this.getXExpression(), null, "body", null, 0, 1, XForExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xForControlVariableEClass, XForControlVariable.class, "XForControlVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getXForControlVariable_New(), ecorePackage.getEBoolean(), "new", null, 0, 1, XForControlVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForControlVariable_Feature(), this.getXFeatureCall(), null, "feature", null, 0, 1, XForControlVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXForControlVariable_Value(), this.getXExpression(), null, "value", null, 0, 1, XForControlVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    // Create resource
    createResource(eNS_URI);
  }

} //UnicornDSLPackageImpl
